package com.jt.provider.controller;

import com.jt.provider.service.ResourceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.concurrent.atomic.AtomicLong;

@RestController
@RequestMapping("/provider")
public class ProviderSentinelController {

    @Autowired
    private ResourceService resourceService;

    private AtomicLong atomicLong=new AtomicLong(1);

    @GetMapping("/sentinel01")
    public String doSentinel01(){
        return "sentinel 01 test ...";
    }

    @GetMapping("/sentinel02")
    public String doSentinel02(){
        return "sentinel 02 test ...";
    }

    @GetMapping("/sentinel03")
    public String doSentinel03(){
        return resourceService.doGetResource();
        //return "sentinel 03 test ...";
    }

    @GetMapping("/sentinel04")
    public String doSentinel04(){
        resourceService.doGetResource();
        return "sentinel 04 test ...";
    }

    @GetMapping("/sentinel05")
    public String doSentinel05() throws InterruptedException {
        long num = atomicLong.getAndIncrement();
        if (num%2==0){
            Thread.sleep(200);
        }
        return "sentinel 05 test ...";
    }

    @GetMapping("/sentinel06")
    public String doFindById(@RequestParam("id") Integer id)  {
        return resourceService.doGetResource(id);
    }


}
